import { Define, EntityObjectFactory } from 'tiny-entity2';
const EntityObjectType = EntityObjectFactory.GetEntityObjectType(process.env.dataBaseType || 'mysql');
@Define.Table({ TableName: "auditlog" })
export class AuditLog extends EntityObjectType<AuditLog>{
    @Define.PrimaryKey()
    id: string;

    @Define.Column({
        DataType: Define.DataType.VARCHAR,
        IsIndex: true,
        DataLength: 32,
        NotAllowNULL: true
    })
    tmpComItemId: string;

    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    dataRegisterId: string;

    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    name: string;

    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    conclusion: 'pass' | 'return' | 'wait' | 'unpass';

    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    backType?: 'gradually' | 'appoint';

    /**
     * 没意见/附件/文本
     */
    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    opinion?: 'no' | 'attachment' | 'text';

    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    opinionValue?: string;
    /**
     * 提交人姓名
     */
    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    submitName?: string;
    /**
     * 具备审核权限的用户名
     */
    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    canAuditName?: string;
    /**
     * 审核人姓名
     */
    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    auditName?: string;
    /**
     * 创建时间
     */
    @Define.Column({
        DataType: Define.DataType.BIGINT
    })
    createTime?: number;

    @Define.Column({
        DataType: Define.DataType.BOOL
    })
    isCurrent?: boolean;

    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    nodeType?: 'submit' | 'audit';

    @Define.Column({
        DataType: Define.DataType.VARCHAR
    })
    index?: number;
    /**
     * 是否是空节点。空节点用于界面占位
     */
    @Define.Column({
        DataType: Define.DataType.BOOL
    })
    isEmptyNode?: boolean;
    /**
     * 空节点并且不显示边框的标识
     */
    @Define.Column({
        DataType: Define.DataType.BOOL
    })
    noBorder?: boolean;
    /**
     * 节点是否未授权
     */
    @Define.Column({
        DataType: Define.DataType.BOOL
    })
    permissionDenied?: boolean;

    /**
     * 是否是更正申请的审核
     *
     */
    @Define.Column({
        DataType: Define.DataType.BOOL
    })
    isCorrective?: boolean;
}